Skip to content

C1: unify work sources and validate recovery - #8266

Open
loopx-agent wants to merge 10 commits into
mainfrom
codex/c1-work-contract-review-20261107
Open

loopx-agent wants to merge 10 commits into
mainfrom
codex/c1-work-contract-review-20261107

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

C1 thin heartbeat 输出预算

C1 的 thin heartbeat 在完整 scope 和能力组合下有三个超限用例。现压缩原 capture 的按需读取与恢复指引,并去掉重复的等待扣额提醒。普通行动仍先读 work_context 和 required_reads。需要补读时使用原 capture,显式全文读取义务、原执行或上下文丢失后的完整来源与身份、选任务和同轮修复所需的 flags 都保留。

源码和隔离 wheel 复用同样的真实 CLI 夹具。六组配对的归一化正文各少 109 字符。未绑定和已绑定的 Codex App 完整组合分别由 5,208→5,099 和 5,108→4,999,沿用 5,100 上限。通用 320 字符 scope 的完整 JSON 从 5,092→4,981,沿用 5,000 上限。超长路由仍报超限,未绑定的最长合格夹具只有 1 字符余量。

默认 turn plan --format json 继续提供完整只读契约。对带 Vision 的拥挤夹具,直接输出 61,473 B。同一不可变 capture 只读路由 1,571 B,补读完整重规划包 15,426 B,全量分两页则 67,079 B。这些是 reader stdout,另有导航和文件开销。该结果支持有明确需求的补读,默认全量预览和权限没有变化。

当前作者 head 7ed3de8fd7a38f50ade524f5d1530236a1c16b2a 已集成 main 10f66ec5e5586453a5579e9943b189bba84698ca,包括保留合并结算失败诊断的主干修复。相关源码 125 通过、4 项既有超限,结算恢复与补读 124 项通过。当前 head 的 File/SQLite 隔离 wheel 都复现预算数据,6 项聚焦测试通过,1,818 个打包源与源码一致。共用 TypeScript 220 项通过,后续主干合并没有改动这些源码和测试。标准预合并 7 个直接检查与 19 个选择检查通过,仍有 benchmark-sensitive 人工审查和当前 head 独立复审。模型 token、整题成本和实际安装采用仍待验证。 主干 #8267

上一版的主干集成与结算验证

作者 head 5be1823fe3f86095165bdafbc441475ec9d254bc 已集成 main 17e614282c83871712614d561373720f3696d2f9,接入主干的按需历史和预览导入、结算读回复用、初次扣额窄读及 Turn 绑定。两处 Turn 绑定重叠已核对生产者指令和相关断言。相对此基线仍有 217 个文件,+19,464/−2,279,较重提时少 29 行变更。双语实验记录保留在本 PR。 #8212 #8218 #8243 #8248 #8254 #8232

同一合成任务、同样的渐进读取和自动差分,通过两个精确作者 head 的真实 quota CLI 和隔离 File/SQLite 比较。两版验证同一产物、同一结算身份、一次写回和一次扣额,拒绝错误 workspace/身份,支持重试和缺失回执恢复。

Python–Effect 传输 File 字节 SQLite 字节 RPC
C1 合并写回 695,581 → 638,748 696,225 → 639,270 116 → 115
缺失扣额回执恢复 133,270 → 74,925 133,504 → 75,033 15 → 14

合并写回内部传输少约 8.2%。初次扣额读取使用紧凑回执,扣额后复用完整读回。guard、完整重试的内部传输以及默认 CLI 输出大小相同。两种存储的 turn plan 预览都从 661 降到 653 个 Python 模块,执行选择一致。该配对的观测范围是合成 CLI、传输和回执,模型 token、整题成本及新安装态仍待验收。

当前源码导入和预览 256 项通过,结算与历史恢复 153 项通过,heartbeat 和输出预算 122 项通过、7 项超限,TypeScript 137 项通过。7 项超限及数值在原 head 和本 head 相同。最大项为带 Vision 的拥挤 turn plan,输出 61,473 字符,上限 26,000。当前基线的标准预合并 7 个直接检查和 19 个选择检查均通过,benchmark-sensitive 人工门和当前 head 独立复审仍开放。

#8211 对当前 main 的合并预览中,有 88 个变更文件与 C1 逐字相同,其中 42 个在 Core 下。预览接入当前 C1 还有 13 个文件冲突,实际收敛规模待主干采用后复核。

重提与原有验证

在 #8265 回滚 #7430 后,从实际主干 2659e5f70c8a8ba6c23f7588151ea5c06576ef69 重新提交 C1。回滚后主干与 #7430 合入前逐字相同,保留已落地的 #8208 和 #8161。

重提时的作者 head 144c7d172ae08a544fea43dc9404cd88042d7ee8。重新应用原 C1,保留双语实验账本,并补两处恢复测试。测试从保存的 journal 工作契约和实际渐进读回命令读取,保留崩溃边界、损坏拒绝、原 capture 和一次结算断言。

该次重提的源码树与本地验证树逐字一致。scheduler、历史、capture、结算、中断恢复和 Goal 验收组 582 项通过,隔离 Docker 用例跳过一项。另用真实 quota CLI 和确定性 Host 验证,C1 拒绝篡改决定后保留原恢复阶段,收到有效决定后沿同一会话继续。安装态、模型整题和完整成本继续开放。新提交进入独立复审和合并门禁。

原 C1 范围与既有证据

本提案使 quota、Turn/Host、capture、journal 与恢复消费同一份完整 work_contract,复用既有 TypeScript 决策与结算 owner。progressive 和已验证字段复用沿实际调用链推进,受支持历史保留原版本、身份和一次效果边界。整体 C1 验收继续开放。

原 #7430 作者 head a4b78b424a38a3f877861f4a419296fcdb856b9a 已集成实际 main 44376963f8adb310f5f96d9407720a447c3b330e。本轮作者补丁把旧偏好测试改接生产 Host 请求构造入口。普通 turn plan 仍只供检查。File/SQLite 覆盖偏好读回、正文篡改拒绝、差分恢复和独立 scope,保留存储损坏时的缓存丢弃及依赖动作策略。

  • 相同集成基线的偏好测试为 3 通过、5 失败,原因是把预览当成 Host 请求。候选偏好、完整决定和首读组 173 通过,Host 请求、捕获和入口组 177 通过。首连 smoke、配对 RFC 检查、Ruff 和公开边界检查通过。
  • 独立预览导入检查仍因提前加载 loopx.extensions.process_runtime 失败,由 #8218 跟进。快速预合并的 7 项直接检查和 4 项选择检查均通过,仍有 quality_receipt_missing、benchmark-sensitive 人工门和当前 head 独立复审。整题成本与安装验收仍待补齐。
  • 相对最新 main 仍是 215 个文件,+19,441/−2,243。实际采用 #8211 后再同步并读回收敛规模。双语实验记录随本 PR。

上一轮作者 head 8e0a4799ce05935fd555e80b30df78f0973f9d1c,已集成实际 main 79665b97a0a453380da02e15b1b62eee895147df(#8234,保留已有项目结果供只读复核,避免重放工作)。无冲突合并的三个相关源码模块 229 passed、共享绑定 TypeScript 61 passed;以下渐进首读修复另按准确候选验证。

已就绪的 C1 首读只展示有序计划中的一条合并写回命令。仅当备用列表与该原效果的计划逐字相同,才省去重复展示;扣额仍由运行时执行并返回回执。未知版本、另一效果、不同备用命令或意外的手动扣额命令继续展示。原 capture、直接输出、完整前提和精确补读保持。普通 quota 的两条手动命令版本单独提为 #8238。

  • File/SQLite 实际 C1 v2 入口的重复命令用例在集成基线失败,修复后通过;同一固定合成 capture 上源码和隔离安装选择相同,其余所选内容逐字一致。四个当前上下文源码模块 187 passed,隔离安装四模块(包含新 main 的结果读取路径) 315 passed,上下文 TypeScript 58 passed、类型检查和改动 Ruff 通过。
  • 本 head 的 quick premerge 7 个直接、4 个选择检查机械通过,仍有一项人工审查。没有取得独立批准或合入资格。
  • 该轮 C1 diff 215 个文件,+19,390/−2,200。refactor(turn): unify plan, host input and recovery on one source #8211 保持原 head 供独立复审;相对于当前实际 main 做无写入合并预览后,与 C1 有 88 个逐字相同的变更文件。实际主干采用和同步前,C1 尚未因此缩小。早期双语实验仍放在一起。

前一轮作者 head c4ea4c31cbcbc6a5e22665796dda01876a0a6d2b 已包含本次实际 main ac62962255322cd80a5b701a4187c6f47bc17d8c。该轮运行时提交 18e2b692868e52c53fd9f890e0565f68f2a66b34 同步了独立切片 #8211 的 Host 执行规则:Codex 和 structured Host 在判断验收或提出关闭前读取已声明的审计;允许尝试、等待和交付的条件继续来自原契约,通知不授予执行权限,Core 仍负责外层效果。无审计声明时不增加读取义务。保留 C1 自己的普通 quota 迁移路径。

  • 相同三个 Host 模块一次完整源码运行和一次隔离安装运行各 519 passed,包括通知/执行边界的四个回归用例。首次安装校验为 517/2:测试目录漏拷贝已跟踪的 DSH 入口脚本。补齐脚本后用同一 wheel 和新测试环境重跑,产品代码未变。所有 1,815 个 Core 分发源及 24 个 provider 文件与提交匹配。
  • 该轮 head 的 quick premerge 7 个直接、4 个选择检查机械通过。总体仍有 quality_receipt_missing 和 benchmark-sensitive 人工复审,未取得合入资格。
  • 面向 main 的 #8211 已处理旧 head 的原生执行、普通 quota v0、验收审计及安装示例问题。该轮两个 head 有 89 个逐字相同的变更文件,其中 43 个在 Core 下。拆分需经独立复审、合入 main 并集成到 C1 才会缩小此处 diff。

前一轮 c3c1f86b 的修复把已绑定 Turn 的生成职责与模型职责分开:生产者已经写入具体时间戳后,提示不再要求模型换一个新唤醒时间戳。具体赋值、独立 guard、原身份、必读/恢复、传输 flags、停止和结算命令保持,未绑定模板保留原唤醒指引;共用原 binding owner,不增字段、开关或 reader。相同问题也已独立面向 main 提出 PR #8232。

  • 原四个真实 CLI 预算用例的路径、scope 和断言保持。长用例原始 JSON 从 5,519 降至 5,379 字符,正文少 139 字符,另少一个 JSON 转义字符。5,400 / 5,500 / 4,000 的各自上限和溢出负例不变。同条件 main 为 5,363;当时 C1 仍多 16 个原始 JSON 字符,这次修复不证明相对 main 的完整流程净节省。
  • 八个模式/宿主语法反事实在修复前失败、修复后通过。32 个实际 builder 对照中,16 个未绑定默认/off 输出逐字一致,16 个已绑定输入只移除生产者已履行的指令,其余命令和生成字段保持。Windows 语法为模拟,未声称 Windows 安装资格。
  • 一次完整、源码稳定的九模块回归 865 passed;一次完整隔离安装三模块回归 90 passed。保留原 worker 的选择、同 Turn 修复、捕获、重入、重放、一次写回与扣额断言。不是把上一版通过和局部复跑拼接:此前 193801b322 的 855/2、80/2 及 5,519 超预算原失败仍保留各自版本。
  • 该轮默认 17 个 Mypy 入口、改动 Ruff 和有限语义 advisory 通过。全部 1,816 个受跟踪产品源、1,815 个 Core 分发源、24 个可选 provider 文件与该轮提交、冻结实测及隔离安装逐字一致;五个已观测 Python 进程、1,179 个 Core 模块、六处子进程来源无已观测 checkout Core 导入。部分子进程覆盖审计环境,故不声称审计覆盖全部进程。模型和外部服务为合成 fixture。
  • c3c1f86b 的 quick 检查 7 个直接、4 个选择检查机械通过;总体仍因 quality_receipt_missing 和 benchmark_sensitive 人工门而 hold,未声称 ready、独立批准或合并。

前一运行时 c0020f47a 修复可见 Goal 的额外完整 capture 前置读取和 Host 验收审计触发:普通/off 不新增前提;required_reads、明确完整读取义务、原身份、恢复、flags、停止和结算保持。24 个同条件 builder 输入没有丢失 main 合法配置。完整 Codex/structured Host 只对已声明审计恢复“判断 Goal 验收或提出关闭前读取”的原触发,历史 renderer 十二例保持逐字一致。heartbeat 消费者迁移到完整来源和摘要校验的原 capture reader;refresh fixture 的实际 project cwd 修正保留,生产守卫未放宽。

更早 5091fb82a9 / main 9d276f6cb9 的 native/私聊两模块源码、正确安装可选 provider 后各一次完整 466 passed,首次 459/7 漏可选分发失败保留;da6779c0a 的 247 passed、a706379f70 的 357 passed、PostgreSQL 和科学成本证据也分别保留其原修订。未把它们重记为当前 head 全面通过。普通 quota v0 writer 和无调用方场景 builder 已删除,明确版本化历史 matrix 及受支持 writer/reader 保留,详见双语账本。

本轮只确认渐进首读中的重复命令减少、原计划可读及现有合成入口行为。真实 App/模型采用、原 quota 单会话整题成果和完整成本仍待验收;双会话另列。未启动模型或科学运行,未查询或手触远端 CI,未安装到活动环境、发布或合并。

This reverts commit 2659e5f.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Read the saved work contract and the progressive liveness fields through their current public recovery paths. Retain the original Turn, crash boundaries, semantic checks, corruption rejection, and no-replay oracles.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Keep the shared producer-bound timestamp fix and the C1 settlement locator and recovery obligations. Preserve the existing long-path and paired transport regression assertions.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify

mergify Bot commented Nov 7, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant